package com.sendnote.Dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.sendnote.Conexao.Conexao;
import com.sendnote.Modelo.Categoria;
import com.sendnote.Modelo.Usuario;

public class UsuarioDAO {

	private Conexao conexao = new Conexao();
	private PreparedStatement ps = null;

	public Usuario buscarUsuario(Usuario usuario) throws SQLException {
		Usuario retorno = null;

		try {
			String sql = "select * from usuario where login = ?";

			ps = conexao.getConnection().prepareStatement(sql);
			ps.setString(1, usuario.getLogin());

			ResultSet rs = ps.executeQuery();

			if (rs.next()) {
				retorno = new Usuario();
				retorno.setId(rs.getInt("id_usuario"));
				retorno.setNome(rs.getString("nome"));
				retorno.setLogin(rs.getString("login"));
				retorno.setSenha(rs.getString("senha"));

				int idCategoria = rs.getInt("categoria");
				retorno.setCategoria(buscarCategoria(idCategoria));
			} else {
				rs.close();
			}

			rs.close();
			ps.close();

		} catch (SQLException e) {
			throw new SQLException(e);
		} finally {
			conexao.closeConnection();
		}

		return retorno;
	}
	
	
	
	
	
	
	
	

	/**************************************
	 * Metodo Extra!
	 * */

	public Categoria buscarCategoria(int idCategoria) throws SQLException {
		Categoria categoria = null;

		try {
			String sql = "select * from categoria where id_categoria = ?";
			ps = conexao.getConnection().prepareStatement(sql);
			ps.setInt(1, idCategoria);

			ResultSet rs = ps.executeQuery();

			if (rs.next()) {
				categoria = new Categoria();
				categoria.setIdCategoria(rs.getInt("id_categoria"));
				categoria.setNome(rs.getString("nome"));
			} else {
				rs.close();
			}
			rs.close();
			ps.close();

		} catch (SQLException e) {
			throw new SQLException(e);
		} finally {
			conexao.closeConnection();
		}

		return categoria;
	}
}
